﻿#define _CRT_SECURE_NO_WARNINGS
/*编程实现：两个int（32位）整数m和n的二进制表达中，有多少个位(bit)不同？ 

输入例子:

1999 2299

输出例子:7*/
#include<stdio.h>
int calc_diff_bit(int m, int n)//将m和n按位异或可将这两个数相同的二进制位清零，不同的二进制比特位为1，统计1的个数即可
{
	int i = m ^ n;
	int count = 0;
	while (i)//这个循环可以将i的最右边的1摘掉，每次循环摘除一个1，并更新i为摘掉最右边1的数；当初始i中的1全部被摘掉时i更新为0，不再循环
	{
		i = i & (i - 1);
		count++;
	}
	return count;
}
int main()
{
	int m = 0;
	int n = 0;
	scanf("%d %d", &m, &n);
	int count = calc_diff_bit(m, n);
	printf("%d\n", count);
	return 0;
}